/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package controle;

import classes.BancoDeDados;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import modelo.Raca;

/**
 *
 * @author cardodav
 */
public class RacaDAO {
    
    
    public List<Raca> getRacasByEspecie(int codigoEspecie){
    
        List<Raca> _lr = new ArrayList<Raca>();

        BancoDeDados bd = new BancoDeDados();

        String query = " SELECT r.codigoraca, r.nomeraca FROM vetlion.raca r WHERE R.codigoespecie =  " + codigoEspecie;
        ResultSet rs = bd.consultar(query);
        
        try {
            if (rs.next()){
                Raca _r = new Raca();
                _r = new Raca();
                _r.setCodigoRaca(rs.getInt("codigoraca"));
                _r.setNome(rs.getString("nomeespecie"));
                
                _lr.add(_r);
            }
        } catch (SQLException ex) {
            System.out.println("Erro ao retornar a especie: " + ex.getMessage());            
        }        
        
        return _lr;
        
    }
    
    public Raca getRaca(int codigoRaca){
    
        Raca _r = null;
        
        BancoDeDados bd = new BancoDeDados();

        String query = " SELECT r.codigoraca, r.nomeraca, r.codigoespecie FROM vetlion.raca r WHERE R.CODIGORACA =  " + codigoRaca;
        ResultSet rs = bd.consultar(query);
        
        try {
            if (rs.next()){

                _r = new Raca();
                _r.setCodigoRaca(rs.getInt("codigoraca"));
                _r.setNome(rs.getString("nomeraca"));
                
            }
        } catch (SQLException ex) {
            System.out.println("Erro ao retornar a especie: " + ex.getMessage());            
        }
        
        return _r;
        
    }

    public List<Raca> getRacas(){
    
        List<Raca> _lr = new ArrayList<Raca>();
        
        BancoDeDados bd = new BancoDeDados();

        String query = " SELECT r.codigoraca, r.nomeraca, r.codigoespecie FROM vetlion.raca r ";
        ResultSet rs = bd.consultar(query);
        
        try {
            while (rs.next()){

                Raca _r = new Raca();
                _r = new Raca();
                _r.setCodigoRaca(rs.getInt("codigoraca"));
                _r.setNome(rs.getString("nomeraca"));
                
                _lr.add(_r);
                
            }
        } catch (SQLException ex) {
            System.out.println("Erro ao retornar a especie: " + ex.getMessage());            
        }
        
        return _lr;
        
    }
    
    public Raca getRacaByNome(String nome){
    
        Raca _r = null;
        
        BancoDeDados bd = new BancoDeDados();

        String query = " SELECT r.codigoraca, r.nomeraca, r.codigoespecie FROM vetlion.raca r WHERE R.nomeraca =  '" + nome + "'";
        ResultSet rs = bd.consultar(query);
        
        try {
            if (rs.next()){

                _r = new Raca();
                _r.setCodigoRaca(rs.getInt("codigoraca"));
                _r.setNome(rs.getString("nomeraca"));
                
            }
        } catch (SQLException ex) {
            System.out.println("Erro ao retornar a especie: " + ex.getMessage());            
        }
        
        return _r;
        
    }

    public static int getCodigoProximo(){
    
        int ret = 0;
        
        BancoDeDados bd = new BancoDeDados();
        try{
            String query = "Select (max(codigoraca) + 1) proximoCodigo from raca";            
            ResultSet rs = bd.consultar(query);
            if(rs.next()){
                ret = rs.getInt("proximoCodigo");
            }
        } catch (SQLException ex){
            System.out.println("Erro ao buscar o proximo codigo da raca: " + ex.getMessage());
        }
        bd.desconectar();
        
        return ret; 
        
    }   
}
